package com.itheima.health.dao;


import com.itheima.health.pojo.Order;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface OrderDao {
    /**
     * 添加
     * @param order
     */
    void add(Order order);

    /**
     * 条件查询
     * @param order
     * @return
     */
    List<Order> findByCondition(Order order);

    /**
     * 查询订单详情
     * @param id
     * @return
     */
    Map findById4Detail(Integer id);

    // 报表相关
    Integer findOrderCountByDate(String date);
    Integer findOrderCountAfterDate(String date);
    Integer findVisitsCountByDate(String date);
    Integer findVisitsCountAfterDate(String date);
    List<Map> findHotSetmeal();

    /**
     * 通过日期范围查询预约数
     * @param startDate
     * @param endDate
     * @return
     */
    Integer findOrderCountBetweenDate(@Param("startDate") String startDate, @Param("endDate") String endDate);

    /**
     * 通过预约id获取该预约所关联的所有检查项id 用于后面生成
     * @param orderId
     * @return
     */
    List<Integer> getCheckItemIdsByOrderId(Integer orderId);

    /**
     * 生成提交报告的检查项
     * @param orderId
     * @param checkItemId
     */
    void generatAdvice(@Param("orderId") Integer orderId,@Param("checkItemId") Integer checkItemId);
}
